interface IPerson {
  name: string,
  age: number,
  friend?: {
    name: string
  }
}

const info: IPerson = {
  name: '张三',
  age: 18,
}

// info.friend可能问undefined
// 访问属性：可以用可选链
console.log(info.friend?.name)

// 属性赋值: 可以用非空类型断言（有点危险，只有确保有值时才能使用）
// info.friend?.name = '李四' // 报错，赋值表达式左侧不能用可选链
info.friend!.name = '李四'